/*
 * Pez.h
 *
 *  Created on: 04/10/2013
 *      Author: ezequiel
 */

#ifndef PEZ_H_
#define PEZ_H_
#include "../Dibujable.h"
#include "Cuerpo.h"
#include "Aleta.h"
#include "OjosPez.h"
#include "../Circunferencia.h"
#define CANT_ALETAS 4
using namespace std;
class Pez : public Dibujable {
public:
	Pez(glm::vec3 posicionInicial, glm::vec3 tamanoInicial,glm::vec3 rotacionInicial, float anguloInicial);
	virtual ~Pez();
	 void render(GLuint handle, glm::mat4* matModelo);
	 void render(GLuint handle);
	 void moverAletas();
	 void moverPez();
	 void setearDireccion();
	 void setearVelocidad(float velocidad);
	 void setTextureid(GLuint textureid,  GLuint textureIdAleta,GLuint tNormal, GLuint aNormal, GLuint aRef);
	 void setCam(Camara* Cam, glm::mat4 pr);
	 void setHandlerOjos(int handler);

private:
	 Circunferencia* curva;
	 Aleta* aleta1;
	 Aleta* aleta2;
	 Aleta* aleta3;
	 Aleta* aleta4;
	 OjosPez* ojo1;
	 OjosPez* ojo2;
	 Cuerpo* cuerpo;
	 glm::vec3 posicionPez;
	 glm::vec3 tamanoPez;
	 glm::vec3 direccionPez;
	 float anguloPez;
	 float anguloAleta[CANT_ALETAS];
	 void changeObjectColor(GLuint handle, float r, float g, float b);
	 bool aletaEntra[CANT_ALETAS];
	 float anguloRespectoCentro;
	 float direccion;
	 float velocidad;
	 int handlerOjos;
};

#endif /* PEZ_H_ */
